package com.xxxx.mapper;

import com.xxxx.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 查询数据
 */
public interface SelectMapper {

    /**
     * 根据用户id查询用户信息
     * @param user_id
     * @return
     */
    User getUserById(@Param("user_id") int user_id);

    /**
     * 根据用户id查询用户信息  但是返回的是一个用户列表信息
     * @param user_id
     * @return
     */
    List<User> getUserListById(@Param("user_id") int user_id);

    /**
     * 查询所有用户信息
     * @return
     */
    List<User> getUserList();


    /**
     * 查询用户的总记录数
     * @return
     */
    int getCount();


    /**
     * 查询一条数据为map集合
     * @param user_id
     * @return
     */
    Map<String , Object> getUserToMap(@Param("user_id") int user_id);


    /**
     * 查询所有的用户信息为map集合
     * @return
     * 将表中的数据以map集合的方式查询.一条数据对应一个map，若有多条数据,就会产生多个map集合,此时可以将这些map放在一个list集合中获取
     */
    List<Map<String , Object>> getAllUserToMap();


    /**
     * 查询所有的用户信息为map集合
     * 将表中的数据以map集合的方式查询,一条数据对应一个map；若有多条数据,就会产生多个map集合,并且最终要以
     * 一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据对应的map集合
     * @return
     */
    @MapKey("user_id")
    Map<String , Object> getAllUserToMaps();



}
